home *** CD-ROM | disk | FTP | other *** search
-
- /* Generated by Interface Builder */
-
- #import "Help.h"
- #import "Main.h"
- #import "Server.h"
- #import <appkit/NXBrowser.h>
- #import <appkit/NXBrowserCell.h>
- #import <appkit/ScrollView.h>
- #import <appkit/Text.h>
- #import <appkit/Panel.h>
- #import <appkit/Matrix.h>
- #import <appkit/Application.h>
- #import <sys/file.h>
- #import <sys/param.h>
- #import <libc.h>
-
- @implementation Help
-
- // Is interface loaded?
- // If more than one help instance, make this an instance var.
- int loaded=0;
-
- /* Bring up the interface.*/
- - show:sender
- {
- if (loaded==0)
- {
- [NXApp loadNibSection:"Help.nib" owner:self];
- }
- [panel makeKeyAndOrderFront:self];
- [browser displayColumn:0];
- return self;
- }
-
-
- /* Display the content of a file in the scrolling view.*/
- - loadFile:(char *)name
- {
- int fd;
- NXStream *st;
-
- fd = open(name, O_RDONLY, 0);
- if (fd >= 0)
- {
- if ((st = NXOpenFile(fd, NX_READONLY)) != 0)
- {
- [text readRichText:st];
- [text sizeToFit];
- // Set the `cursor' to the start of the text.
- [text setSel:0:0];
- // Adjust the scroll position so that start of text is visible.
- [text scrollSelToVisible];
- NXClose(st);
- }
- close(fd);
- }
- return self;
- }
-
- /*
- This message is called by the entries in the `sections' section to display the appropriate help file.
- */
- - helpme:sender
- {
- char title[100], name[MAXPATHLEN];
- // The name of the help file is the same as the title of the section.
- [sender getPath:title toColumn:1];
- sprintf(name, "%s/Help%s", [appDelegate appdir], title);
- [self loadFile:name];
- return self;
- }
-
- // Respond to the browser's query about whether the data has been loaded.
- - (BOOL)browser:sender columnIsValid:(int)column
- {
- return loaded!=0;
- }
-
- // Add a help section to the list.
- - addTopic:(char *)title at:(int)pos in:matrix for:browser
- {
- id cell;
- [matrix insertRowAt:pos];
- cell = [matrix cellAt:pos:0];
- [cell setStringValue:title];
- [cell setLoaded:YES];
- [cell setLeaf:YES];
- return self;
- }
-
- // Fill the list of help sections.
- - (int)browser:sender fillMatrix:matrix inColumn:(int)column
- {
- [self addTopic:"What is NewFile" at:0 in:matrix for:sender];
- [self addTopic:"General use" at:1 in:matrix for:sender];
- [self addTopic:"Current directory" at:2 in:matrix for:sender];
- [self addTopic:"Defining file types" at:3 in:matrix for:sender];
- [self addTopic:"Updating Services" at:4 in:matrix for:sender];
- [self addTopic:"Command keys" at:5 in:matrix for:sender];
- [self addTopic:"Things to do" at:6 in:matrix for:sender];
- [self addTopic:"Info" at:7 in:matrix for:sender];
- loaded++;
- // Return the number of sections.
- return 8;
- }
-
- // Intercept the scrolling view's initialization to get its doc view.
- - setScrollingview:anObject
- {
- scrollingview = anObject;
- text = [scrollingview docView];
- return self;
- }
-
- @end
-